home *** CD-ROM | disk | FTP | other *** search
/ Dictionaries & Language / Dictionaries and Language (Chestnut CD-ROM) (1993).iso / spanish / sp_1_2 / teacher.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-08-17  |  18.5 KB  |  333 lines

  1. 10  'Version 1.2---10/1/83
  2. 20  KEY OFF:CLS:SCREEN 0,0,0:WIDTH 80:LOCATE 1,1,0:FOR I=1 TO 10:KEY I,"":NEXT:DEF SEG:POKE 106,0
  3. 22  ON ERROR GOTO 25:PLAY "":ON ERROR GOTO 0:GOTO 30
  4. 25  LOCATE 10,9:PRINT">>>>>> You must load BASICA in order to use SPANISH TEACHER #2 <<<<<<":LOCATE 23:END
  5. 30  LOCATE 3,9:PRINT STRING$(64,223):FOR I=3 TO 21:LOCATE I,8:PRINT CHR$(219):LOCATE I,73:PRINT CHR$(219):NEXT:LOCATE 21,9:PRINT STRING$(64,220)
  6. 40  LOCATE 7,30:PRINT"Micro Tutor Products":LOCATE 9,36:PRINT"presents":LOCATE 11,28:PRINT"*************************":LOCATE 12,28:PRINT"* ";:COLOR 0,7:PRINT" SPANISH TEACHER  #2 ";:COLOR 7,0:PRINT" *":LOCATE 13,28:PRINT"*************************
  7. 50  LOCATE 15,34:PRINT"(c) 1982 by":LOCATE 17,27:PRINT" Cindy & Andrew Bartorillo":DEFINT A-Z:S=120:DIM Z1(S),Z2(S),Z1$(S),Z2$(100),R1$(100),R2$(100),R3$(100),R4$(100),E(5,6)
  8. 60  U1$="##":U2$="\                  \":U7$="\                                      \":L$="Line printer is not available!":S1$="Spanish to English":S2$="English to Spanish"
  9. 70  RANDOMIZE(VAL(RIGHT$(TIME$,2))):S1=0:T9=0:COLOR 0,7:LOCATE 24,20:PRINT" Hit any key when ready for program menu. ";:COLOR 7,0:GOSUB 3110
  10. 80  IF INKEY$="" THEN 80
  11. 90  CLS:T=0:Y=0:TM=15:TM$="00:00:10":COLOR 0,7:LOCATE 1,25:PRINT" SPANISH TEACHER #2--Version 1.2 ":COLOR 7,0:PRINT STRING$(79,"-"):LOCATE 4,15:PRINT"These options are available:":LOCATE 6,25:PRINT"<A> Noun Vocabulary Drill"
  12. 100  PRINT TAB(25)"<B> Verb Vocabulary Drill":PRINT TAB(25)"<C> Miscellaneous Word Vocabulary Drill":PRINT TAB(25)"<D> Random Selection Vocabulary Drill":PRINT TAB(25)"<E> Verb Conjugation Drill"
  13. 110  PRINT TAB(25)"<F> Retest Missed Vocabulary":PRINT TAB(25)"<G> Diagnostic Results":PRINT TAB(25)"<H> Print Noun Vocabulary Test":PRINT TAB(25)"<I> Print Verb Vocabulary Test":PRINT TAB(25)"<J> Print Miscellaneous Word Vocabulary Test"
  14. 120  PRINT TAB(25)"<K> Print Random Selection Vocabulary Test":PRINT TAB(25)"<L> Print Verb Conjugation Test":LOCATE 21,1:PRINT STRING$(79,"-")
  15. 130  LOCATE 23,1:PRINT SPC(70):COLOR 0,7:LOCATE 23,34:PRINT" ENTER CHOICE ":COLOR 7,0:GOSUB 3110
  16. 140  Z$=INKEY$:IF Z$="" THEN 140 ELSE IF ASC(Z$)>90 THEN Z$=CHR$(ASC(Z$)-32)
  17. 150  S=ASC(Z$)-64
  18. 155  IF S>4 THEN S=S+1
  19. 156  IF S>12 THEN S=S+1
  20. 157  IF S<1 OR S>14 THEN 140
  21. 160  IF S>8 THEN S=S-8:S$="Y":ON ERROR GOTO 3120:LPRINT:ON ERROR GOTO 0:T=1
  22. 170  IF S<7 THEN S1=S
  23. 180  IF S1=6 AND S=7 THEN 140
  24. 190  IF S=7 THEN GOSUB 1550:IF P5=0 AND P6=0 THEN 1600 ELSE 380
  25. 200  IF S<>8 THEN T9=0
  26. 210  CLS:B=0:D=0:ON S GOTO 220,220,220,220,220,220,220,1980
  27. 220  P5=0:P6=0:P8=0:P9=0:P=0:P1=0:M=0:T1=0:T2=0:IF S=6 THEN FOR I=1 TO 5:FOR H=1 TO 6:E(I,H)=0:NEXT H,I
  28. 230  ERASE Z1$,Z2$,R1$,R2$,R3$,R4$:DIM Z1$(120),Z2$(100),R1$(100),R2$(100),R3$(100),R4$(100)
  29. 240  IF S=4 THEN GOSUB 1620
  30. 250  IF S=6 THEN GOSUB 2540:TM=25:TM$="00:00:20"
  31. 260  IF S=1 THEN GOSUB 1660
  32. 270  IF S=2 THEN X$="*":GOSUB 1710
  33. 280  IF S=3 THEN X$="/":GOSUB 1710
  34. 290  IF S=5 THEN GOSUB 1760
  35. 300  CLS:IF S<>6 THEN FOR I=1 TO 120:Z1(I)=0:Z2(I)=0:NEXT
  36. 310  P8=P:P9=P:IF S=6 THEN P8=P/7:P9=P8
  37. 320  IF T=1 OR T1>0 THEN 370
  38. 330  CLS:LOCATE 12,15:PRINT"Do you want a multiple choice type quiz (Y/N/X=Escape)?":GOSUB 3110
  39. 340  S$=INKEY$:IF S$="" THEN 340 ELSE IF ASC(S$)>90 THEN S$=CHR$(ASC(S$)-32)
  40. 350  IF S$="X" THEN 90
  41. 360  IF S$<>"Y" AND S$<>"N" THEN 340
  42. 370  IF S=6 THEN 480
  43. 380  IF S=6 THEN 90 ELSE CLS:LOCATE 12,6:PRINT"Do you want ";S2$;" or ";S1$;" (E/S/X=Escape)?":GOSUB 3110
  44. 390  X$=INKEY$:IF X$="" THEN 390 ELSE IF ASC(X$)>90 THEN X$=CHR$(ASC(X$)-32)
  45. 400  IF S=5 THEN T9=1
  46. 410  IF X$="E" THEN D=2:IF P9=0 AND S<>7 THEN LOCATE 20,15:PRINT"You have no ";S2$;" selections available.":FOR B=1 TO 4999:NEXT:GOTO 380
  47. 420  IF X$="E" THEN D=2:IF P3=0 AND S=7 THEN LOCATE 20,11:PRINT"You have no ";S2$;" selections to be retested on.":FOR B=1 TO 4999:NEXT:GOTO 380 ELSE 480
  48. 430  IF X$="S" THEN D=1:IF P8=0 AND S<>7 THEN LOCATE 20,15:PRINT"You have no ";S1$;" selections available.":FOR B=1 TO 4999:NEXT:GOTO 380
  49. 440  IF X$="S" THEN D=1:IF P4=0 AND S=7 THEN LOCATE 20,11:PRINT"You have no ";S1$;" selections to be retested on.":FOR B=1 TO 4999:NEXT:GOTO 380 ELSE 480
  50. 450  IF X$="X" AND S<>7 THEN S1=S
  51. 460  IF X$="X" THEN 90
  52. 470  GOTO 390
  53. 480  CLS
  54. 490  IF S=1 THEN PRINT STRING$(24,175);" ";:COLOR 0,7:PRINT" NOUN VOCABULARY DRILL OPTION ";:COLOR 7,0:PRINT" ";STRING$(24,174)
  55. 500  IF S=2 THEN PRINT STRING$(24,175);" ";:COLOR 0,7:PRINT" VERB VOCABULARY DRILL OPTION ";:COLOR 7,0:PRINT" ";STRING$(24,174)
  56. 510  IF S=3 THEN PRINT STRING$(17,175);" ";:COLOR 0,7:PRINT" MISCELLANEOUS WORD VOCABULARY DRILL OPTION ";:COLOR 7,0:PRINT" ";STRING$(17,174)
  57. 520  IF S=4 THEN PRINT STRING$(16,175);" ";:COLOR 0,7:PRINT" RANDOM SELECTION WORD VOCABULARY DRILL OPTION ";:COLOR 7,0:PRINT" ";STRING$(15,174)
  58. 530  IF S=5 THEN PRINT STRING$(23,175);" ";:COLOR 0,7:PRINT" PHRASE TRANSLATION DRILL OPTION ";:COLOR 7,0:PRINT" ";STRING$(22,174)
  59. 540  IF S=6 THEN PRINT STRING$(24,175);" ";:COLOR 0,7:PRINT" VERB CONJUGATION DRILL OPTION ";:COLOR 7,0:PRINT" ";STRING$(23,174)
  60. 550  IF S=7 THEN PRINT STRING$(32,175);" ";:COLOR 0,7:PRINT" RETEST OPTION ";:COLOR 7,0:PRINT" ";STRING$(31,174)
  61. 560  LOCATE 3,1:PRINT STRING$(80,"-"):LOCATE 17,1:PRINT STRING$(80,"-")
  62. 570  IF T=1 THEN 600
  63. 580  IF S<>7 THEN LOCATE 16,4:PRINT"Total quizzed ="T1:LOCATE 16,25:PRINT"Total correct ="T2:LOCATE 16,46:PRINT"Correct answer percentage = ";:IF P1=100 THEN PRINT "100%" ELSE PRINT USING U1$;P1;:PRINT"%"
  64. 590  '
  65. 600  IF S=6 THEN 2600
  66. 610  FOR I=1 TO 4:A$(I)="":NEXT
  67. 620  X=INT(RND(1)*P)+1:K=INT(RND(1)*4)+1:IF S=7 AND D=1 THEN X1=INT(RND(1)*P6)+1 ELSE IF S=7 AND D=2 THEN X1=INT(RND(1)*P5)+1
  68. 630  LOCATE 2,2:PRINT"*":FOR DE=1 TO 199:NEXT:LOCATE 2,2:PRINT" "
  69. 640  BR$=INKEY$:IF BR$="" THEN 650 ELSE IF BR$="x" OR BR$="X" THEN 380
  70. 650  IF S=7 THEN 1800
  71. 660  IF (D=2 AND Z1(X)<>0) OR (D=1 AND Z2(X)<>0) THEN 620
  72. 670  IF D=1 THEN A$(K)=Z1$(X) ELSE A$(K)=MID$(Z2$(X),2)
  73. 680  IF S$="N" THEN 740
  74. 690  IF K=1 THEN I=2:GOSUB 1220:I=3:GOSUB 1220:I=4:GOSUB 1220
  75. 700  IF K=2 THEN I=1:GOSUB 1220:I=3:GOSUB 1220:I=4:GOSUB 1220
  76. 710  IF K=3 THEN I=1:GOSUB 1220:I=2:GOSUB 1220:I=4:GOSUB 1220
  77. 720  IF K=4 THEN I=1:GOSUB 1220:I=2:GOSUB 1220:I=3:GOSUB 1220
  78. 730  IF A$(1)=A$(2) OR A$(1)=A$(3) OR A$(1)=A$(4) OR A$(2)=A$(3) OR A$(2)=A$(4) OR A$(3)=A$(4) THEN 620
  79. 740  GOSUB 1480
  80. 750  IF D=2 AND S=5 THEN LOCATE 5,20:PRINT USING U7$;Z1$(X) ELSE IF D=1 AND S=5 THEN LOCATE 5,20:PRINT USING U7$;MID$(Z2$(X),2)
  81. 760  IF D=2 AND S=7 AND T9=1 THEN LOCATE 5,20:PRINT USING U7$;R1$(X1) ELSE IF D=1 AND S=7 AND T9=1 THEN LOCATE 5,20:PRINT USING U7$;MID$(R4$(X1),2)
  82. 770  IF S=4 AND D=2 THEN GOSUB 1460 ELSE IF S=7 AND D=2 AND T9<>1 THEN GOSUB 1830
  83. 780  IF S$="N" THEN 840 ELSE FOR N=1 TO 4:LOCATE 5+N*2,29:PRINT"<";MID$(STR$(N),2);"> ";
  84. 790  IF (T9<>1 OR (S<>5 AND S<>7)) AND (LEFT$(A$(N),4)="los " OR LEFT$(A$(N),4)="las ") THEN PRINT USING U2$;MID$(A$(N),5):GOTO 800
  85. 795  IF (T9<>1 OR (S<>5 AND S<>7)) AND (LEFT$(A$(N),3)="la " OR LEFT$(A$(N),3)="el ") THEN PRINT USING U2$;MID$(A$(N),4) ELSE IF (S<>5 AND S<>7) OR T9<>1 OR S=6 THEN PRINT USING U2$;A$(N)
  86. 800  IF S=5 OR T9=1 THEN PRINT USING U7$;A$(N)
  87. 810  NEXT
  88. 820  IF T=1 THEN 1240
  89. 830  FOR N=1 TO 4:C$(N)=A$(N):NEXT
  90. 840  GOSUB 3110:GOSUB 3140:IF (S$="N" AND D=2) OR (S$="N" AND S=6) THEN LOCATE 25,1:PRINT"F1="CHR$(160)"   F2="CHR$(130)"   F3="CHR$(161)"   F4="CHR$(162)"   F5="CHR$(163)"   F6="CHR$(164);
  91. 850  IF S$="N" THEN GOSUB 2980:C$(C)=ANSWER$:IF C$(C)="x" OR C$(C)="X" THEN 380 ELSE 950
  92. 860  C=0:LOCATE 19,25:PRINT"Enter your choice (1-4/X=Escape)";
  93. 870  TIME$="00:00:00"
  94. 880  C$=INKEY$:IF TM-VAL(RIGHT$(TIME$,2))<0 THEN TIME$=TM$
  95. 885  DEFSEG=&H40:POKE &H17,160
  96. 890  LOCATE 18,64:PRINT USING U1$;TM-VAL(RIGHT$(TIME$,2));:PRINT" seconds left"
  97. 900  IF RIGHT$(TIME$,2)=MID$(STR$(TM),2) THEN LOCATE 18,64:COLOR 23,0:PRINT"TIME EXPIRED   ":COLOR 7,0:GOTO 950
  98. 910  IF C$<>"" THEN 930
  99. 920  GOTO 880
  100. 930  IF C$="x" OR C$="X" THEN 380
  101. 940  IF C$<"1" OR C$>"4" THEN 880 ELSE LOCATE 19,58:PRINT C$:C=VAL(C$)
  102. 950  IF S=7 THEN 1850
  103. 960  T1=T1+1:COLOR 0,7:IF C$(C)=A$(K) THEN LOCATE 22,33:PRINT" CORRECT ANSWER ":T2=T2+1 ELSE LOCATE 22,INT((80-LEN(A$(K))-38)/2):PRINT" INCORRECT ANSWER-CORRECT ANSWER IS: ";A$(K);" "
  104. 970  COLOR 7,0:P1=(T2/T1)*100
  105. 980  LOCATE 16,19:PRINT T1:LOCATE 16,40:PRINT T2:IF P1=100 THEN LOCATE 16,74:PRINT"100":GOTO 1000
  106. 990  LOCATE 16,74:PRINT USING U1$;P1;:PRINT "% "
  107. 1000  IF D=2 AND C$(C)<>A$(K) THEN Z1(X)=2
  108. 1010  IF D=2 AND C$(C)=A$(K) THEN Z1(X)=1
  109. 1020  IF D=1 AND C$(C)<>A$(K) THEN Z2(X)=2
  110. 1030  IF D=1 AND C$(C)=A$(K) THEN Z2(X)=1
  111. 1040  IF S=6 AND C$(C)<>A$(K) THEN E(Z1(M),X1)=E(Z1(M),X1)+1
  112. 1050  IF S<>7 AND D=2 THEN P9=P9-1 ELSE IF S<>7 THEN P8=P8-1
  113. 1060  GOSUB 3140
  114. 1070  IF S=6 THEN 1140 ELSE IF P8=0 AND P9=0 THEN 2750
  115. 1080  IF D=1 AND P8=0 THEN 1120
  116. 1090  IF D=2 AND P9=0 THEN 1100 ELSE 1140
  117. 1100  LOCATE 24,10:PRINT"You have been quizzed with all ";S2$;" selections.";:LOCATE 25,17:PRINT"Hit any key to select ";S1$;" option.";
  118. 1110  IF INKEY$="" THEN 1110 ELSE D=1:LOCATE 24,9:PRINT SPC(63);:LOCATE 25,17:PRINT SPC(48);:GOTO 1170
  119. 1120  LOCATE 24,10:PRINT"You have been quizzed with all ";S1$;" selections.";:LOCATE 25,17:PRINT"Hit any key to select ";S2$;" option.";
  120. 1130  IF INKEY$="" THEN 1130 ELSE D=2:LOCATE 24,9:PRINT SPC(63);:LOCATE 25,17:PRINT SPC(48);:GOTO 1170
  121. 1140  IF S=6 THEN Z1(M)=0:IF P8=0 THEN 2750
  122. 1150  LOCATE 25,20:PRINT"Hit any key for another selection (X=Escape)";:GOSUB 3110
  123. 1160  Z$=INKEY$:IF Z$="" THEN 1160 ELSE IF Z$="x" OR Z$="X" THEN 380
  124. 1170  LOCATE 18,64:PRINT SPC(16):LOCATE 19,1:PRINT SPC(79):LOCATE 22,1:PRINT SPC(79):LOCATE 25,20:PRINT SPC(45)
  125. 1180  IF S=6 THEN LOCATE 5,15:PRINT STRING$(20,178):LOCATE 5,40:PRINT STRING$(8,178):LOCATE 5,60:PRINT STRING$(12,178):IF S$="Y" THEN FOR II=1 TO 4:LOCATE 5+II*2,33:PRINT STRING$(20,178):NEXT
  126. 1190  IF S=5 OR (S=7 AND T9=1) THEN LOCATE 5,20:PRINT STRING$(35,178):IF S$="Y" THEN FOR II=1 TO 4:LOCATE 5+II*2,33:PRINT STRING$(35,178):NEXT
  127. 1200  IF S<5 OR S1<5 THEN LOCATE 5,20:PRINT STRING$(20,178):IF S$="Y" THEN FOR II=1 TO 4:LOCATE 5+II*2,33:PRINT STRING$(20,178):NEXT
  128. 1210  IF S=6 THEN 2600 ELSE 610
  129. 1220  N=INT(RND(1)*P)+1:IF D=2 THEN A$(I)=MID$(Z2$(N),2) ELSE A$(I)=Z1$(N)
  130. 1230  RETURN
  131. 1240  LOCATE 20,30:PRINT"Hit <P> to print selection,":PRINT TAB(34)"<N> for new selection, or":PRINT TAB(34)"<X> to exit.":GOSUB 3110
  132. 1250  ZZ$=INKEY$:IF ZZ$="" THEN 1250
  133. 1260  IF ZZ$="p" OR ZZ$="P" THEN GOSUB 1310:GOTO 1300
  134. 1270  IF ZZ$="n" OR ZZ$="N" THEN 1300
  135. 1280  IF ZZ$="x" OR ZZ$="X" THEN 380
  136. 1290  GOTO 1250
  137. 1300  LOCATE 20,30:PRINT SPC(27):LOCATE 21,34:PRINT SPC(25):LOCATE 22,34:PRINT SPC(12):GOTO 1170
  138. 1310  Y=Y+1:IF Y>1 THEN 1380
  139. 1320  IF S=1 THEN LPRINT STRING$(26,"*");" Noun Vocabulary Drill Test ";STRING$(26,"*")
  140. 1330  IF S=2 THEN LPRINT STRING$(26,"*");" Verb Vocabulary Drill Test ";STRING$(26,"*")
  141. 1340  IF S=3 THEN LPRINT STRING$(19,"*");" Miscellaneous Word Vocabulary Drill Test ";STRING$(19,"*")
  142. 1350  IF S=4 THEN LPRINT STRING$(17,"*");" Random Selection Word Vocabulary Drill Test ";STRING$(18,"*")
  143. 1360  IF S=5 THEN LPRINT STRING$(25,"*");" Phrase Translation Drill Test ";STRING$(24,"*")
  144. 1370  IF S=6 THEN LPRINT STRING$(26,"*");" Verb Conjugation Drill Test ";STRING$(25,"*")
  145. 1380  LPRINT:IF S=5 THEN 1430 ELSE IF S=6 THEN 1450
  146. 1390  LPRINT STR$(Y);". ";:IF D=2 THEN ZZ$=Z1$(X):GOTO 1410
  147. 1400  IF LEFT$(Z2$(X),5)="-los " OR LEFT$(Z2$(X),5)="-las " THEN ZZ$=MID$(Z2$(X),6):GOTO 1410
  148. 1405  IF LEFT$(Z2$(X),4)="-la " OR LEFT$(Z2$(X),4)="-el " THEN ZZ$=MID$(Z2$(X),5) ELSE ZZ$=MID$(Z2$(X),2)
  149. 1410  GOSUB 2920:LPRINT ZZ$:LPRINT TAB(4);:FOR B=1 TO 4:IF LEFT$(A$(B),4)="los " OR LEFT$(A$(B),4)="las " THEN ZZ$=MID$(A$(B),5):GOTO 1420
  150. 1415  IF LEFT$(A$(B),3)="la " OR LEFT$(A$(B),3)="el " THEN ZZ$=MID$(A$(B),4) ELSE ZZ$=A$(B)
  151. 1420  GOSUB 2920:LPRINT "  ";CHR$(96+B);". ";ZZ$;:NEXT:LPRINT:LPRINT:RETURN
  152. 1430  LPRINT STR$(Y);". ";:IF D=2 THEN ZZ$=Z1$(X) ELSE ZZ$=MID$(Z2$(X),2)
  153. 1440  GOSUB 2920:LPRINT ZZ$:FOR B=1 TO 4:LPRINT TAB(10) CHR$(96+B);". ";:ZZ$=A$(B):GOSUB 2920:LPRINT ZZ$:NEXT:LPRINT:RETURN
  154. 1450  LPRINT STR$(Y);". ";Z1$(P);TAB(25)BR$;TAB(40)X$:LPRINT TAB(4);:FOR B=1 TO 4:LPRINT "  ";CHR$(96+B);". ";A$(B);:NEXT:LPRINT:LPRINT:RETURN
  155. 1460  LOCATE 5,70:COLOR 0,7:IF LEFT$(Z2$(X),1)="-" THEN PRINT" NOUN " ELSE IF LEFT$(Z2$(X),1)="*" THEN PRINT" VERB " ELSE PRINT" MISC "
  156. 1470  COLOR 7,0:RETURN
  157. 1480  IF D=2 AND S<>5 AND S<>7 THEN LOCATE 5,20:PRINT USING U2$;Z1$(X)
  158. 1490  IF D=1 AND S<>5 AND S<>7 AND (MID$(Z2$(X),2,4)="los " OR MID$(Z2$(X),2,4)="las ") THEN LOCATE 5,20:PRINT USING U2$;MID$(Z2$(X),6):GOTO 1510
  159. 1495  IF D=1 AND S<>5 AND S<>7 AND (MID$(Z2$(X),2,3)="la " OR MID$(Z2$(X),2,3)="el ") THEN LOCATE 5,20:PRINT USING U2$;MID$(Z2$(X),5):GOTO 1510
  160. 1500  IF D=1 AND S<>5 AND S<>7 THEN LOCATE 5,20:PRINT USING U2$;MID$(Z2$(X),2)
  161. 1510  IF D=1 AND T9<>1 AND S=7 AND (MID$(R4$(X1),2,4)="los " OR MID$(R4$(X1),2,4)="las ") THEN LOCATE 5,20:PRINT USING U2$;MID$(R4$(X1),6):GOTO 1530
  162. 1515  IF D=1 AND T9<>1 AND S=7 AND (MID$(R4$(X1),2,3)="la " OR MID$(R4$(X1),2,3)="el ") THEN LOCATE 5,20:PRINT USING U2$;MID$(R4$(X1),5):GOTO 1530
  163. 1520  IF D=1 AND T9<>1 AND S=7 THEN LOCATE 5,20:PRINT USING U2$;MID$(R4$(X1),2)
  164. 1530  IF D=2 AND T9<>1 AND S=7 THEN LOCATE 5,20:PRINT USING U2$;R1$(X1)
  165. 1540  RETURN
  166. 1550  LOCATE 23,34:PRINT SPC(14):P3=0:P4=0:P5=0:P6=0
  167. 1560  FOR N=1 TO P
  168. 1570  IF Z1(N)=2 THEN P5=P5+1:R2$(P5)=Z2$(N):R1$(P5)=Z1$(N)
  169. 1580  IF Z2(N)=2 THEN P6=P6+1:R3$(P6)=Z1$(N):R4$(P6)=Z2$(N)
  170. 1590  NEXT:P3=P5:P4=P6:RETURN
  171. 1600  LOCATE 23,21:PRINT"There is no record of any wrong answers.":FOR N=1 TO 5999:NEXT:GOTO 130
  172. 1610  COLOR 0,7:LOCATE 12,33:PRINT" Inputting data ":COLOR 7,0:RETURN
  173. 1620  FOR I=1 TO 2:A(I)=INT(RND(1)*16)+1:NEXT:IF A(1)=A(2) THEN 1620 ELSE GOSUB 1610
  174. 1630  FOR I=1 TO 2:OPEN "I",1,"VOCAB"+MID$(STR$(A(I)),2)+".DAT"
  175. 1640  P=P+1:INPUT #1,Z1$(P),Z2$(P):GOSUB 2890
  176. 1650  IF EOF(1) THEN CLOSE:NEXT:RETURN ELSE LOCATE 14,39:PRINT P:GOTO 1640
  177. 1660  FOR I=1 TO 2:A(I)=INT(RND(1)*16)+1:NEXT:IF A(1)=A(2) OR A(1)=A(3) OR A(2)=A(3) THEN 1660 ELSE GOSUB 1610
  178. 1670  FOR I=1 TO 2:OPEN "I",1,"VOCAB"+MID$(STR$(A(I)),2)+".DAT"
  179. 1680  INPUT #1,X1$,X2$:LOCATE 14,39:PRINT P
  180. 1690  GOSUB 2890:IF LEFT$(X2$,1)="-" THEN P=P+1:Z1$(P)=X1$:Z2$(P)=X2$
  181. 1700  IF EOF(1) THEN CLOSE:NEXT:RETURN ELSE GOTO 1680
  182. 1710  FOR I=1 TO 6:A(I)=INT(RND(1)*16)+1:NEXT:GOSUB 2280:IF P=1 THEN 1710 ELSE GOSUB 1610
  183. 1720  FOR I=1 TO 6:OPEN "I",1,"VOCAB"+MID$(STR$(A(I)),2)+".DAT"
  184. 1730  INPUT #1,X1$,X2$:LOCATE 14,39:PRINT P
  185. 1740  GOSUB 2890:IF LEFT$(X2$,1)=X$ THEN P=P+1:Z1$(P)=X1$:Z2$(P)=X2$
  186. 1750  IF EOF(1) THEN CLOSE:NEXT:RETURN ELSE GOTO 1730
  187. 1760  FOR I=1 TO 6:A(I)=INT(RND(1)*15)+1:NEXT:GOSUB 2280:IF P=1 THEN 1760 ELSE GOSUB 1610
  188. 1770  FOR N=1 TO 4:OPEN "I",1,"PHRASE"+MID$(STR$(A(N)),2)+".DAT"
  189. 1780  P=P+1:INPUT #1,Z1$(P),Z2$(P):GOSUB 2890
  190. 1790  IF EOF(1) THEN CLOSE:NEXT:RETURN ELSE LOCATE 14,39:PRINT P:GOTO 1780
  191. 1800  IF (D=2 AND R1$(X1)="") OR (D=1 AND R4$(X1)="") THEN 620
  192. 1810  IF D=1 THEN A$(K)=R3$(X1) ELSE A$(K)=MID$(R2$(X1),2)
  193. 1820  GOTO 680
  194. 1830  LOCATE 5,70:COLOR 0,7:IF LEFT$(R2$(X1),1)="-" THEN PRINT" NOUN " ELSE IF LEFT$(R2$(X1),1)="*" THEN PRINT" VERB " ELSE PRINT" MISC "
  195. 1840  COLOR 7,0:RETURN
  196. 1850  COLOR 0,7:IF C$(C)=A$(K) THEN LOCATE 22,33:PRINT" CORRECT ANSWER " ELSE LOCATE 22,INT((48-LEN(A$(K)))/2):PRINT" INCORRECT ANSWER-CORRECT ANSWER IS: ";A$(K);" "
  197. 1860  COLOR 7,0:IF D=1 THEN GOSUB 1930 ELSE GOSUB 1950
  198. 1870  IF D=1 THEN R4$(X1)="":P4=P4-1 ELSE R1$(X1)="":P3=P3-1
  199. 1880  GOSUB 3140:IF P3>0 OR P4>0 THEN 1900
  200. 1890  IF P3=0 AND P4=0 THEN 2760
  201. 1900  IF D=2 AND P3=0 THEN 1100
  202. 1910  IF D=1 AND P4=0 THEN 1120
  203. 1920  GOTO 1140
  204. 1930  FOR B=1 TO P:IF Z2$(B)=R4$(X1) AND C$(C)=A$(K) THEN Z2(B)=4 ELSE IF Z2$(B)=R4$(X1) AND C$(C)<>A$(K) THEN Z2(B)=3:RETURN
  205. 1940  NEXT
  206. 1950  FOR B=1 TO P:IF Z1$(B)=R1$(X1) AND C$(C)=A$(K) THEN Z1(B)=4 ELSE IF Z1$(B)=R1$(X1) AND C$(C)<>A$(K) THEN Z1(B)=3:RETURN
  207. 1960  NEXT
  208. 1970  RETURN
  209. 1980  CLS:PR$="":IF S1=1 THEN PRINT STRING$(24,175);" ";:COLOR 0,7:PRINT" NOUN VOCABULARY DRILL RESULTS ";:COLOR 7,0:PRINT" ";STRING$(23,174)
  210. 1990  IF S1=2 THEN PRINT STRING$(24,175);" ";:COLOR 0,7:PRINT" VERB VOCABULARY DRILL RESULTS ";:COLOR 7,0:PRINT" ";STRING$(23,174)
  211. 2000  IF S1=3 THEN PRINT STRING$(17,175);" ";:COLOR 0,7:PRINT" MISCELLANEOUS WORD VOCABULARY DRILL RESULTS ";:COLOR 7,0:PRINT" ";STRING$(16,174)
  212. 2010  IF S1=4 THEN PRINT STRING$(15,175);" ";:COLOR 0,7:PRINT" RANDOM SELECTION WORD VOCABULARY DRILL RESULTS ";:COLOR 7,0:PRINT" ";STRING$(15,174)
  213. 2020  IF S1=5 THEN PRINT STRING$(22,175);" ";:COLOR 0,7:PRINT" PHRASE TRANSLATION DRILL RESULTS ";:COLOR 7,0:PRINT" ";STRING$(22,174)
  214. 2030  IF S1=6 THEN 2790
  215. 2040  PRINT STRING$(80,"-"):PRINT
  216. 2050  IF P8<>0 OR P9<>0 THEN GOSUB 2200
  217. 2060  IF P3<>0 OR P4<>0 THEN GOSUB 2240
  218. 2070  PRINT"Press one of the following keys:":PRINT
  219. 2080  IF P3>0 OR P4>0 THEN PRINT TAB(20)"<R>esume Retesting"
  220. 2090  IF P8>0 OR P9>0 THEN PRINT TAB(20)"<G>o Back To Original Option"
  221. 2100  PRINT TAB(20)"<D>isplay Test Results"
  222. 2110  PRINT TAB(20)"<P>rint Test Results"
  223. 2120  PRINT TAB(20)"<C>hoose New Option":GOSUB 3110
  224. 2130  X$=INKEY$:IF X$="" THEN 2130 ELSE IF ASC(X$)>90 THEN X$=CHR$(ASC(X$)-32)
  225. 2140  IF X$="D" THEN GOSUB 2300:GOTO 1980
  226. 2150  IF X$="P" THEN PR$="Y":ON ERROR GOTO 3170:LPRINT:ON ERROR GOTO 0:GOSUB 2300:GOTO 1980
  227. 2160  IF X$="R" AND (P3>0 OR P4>0) THEN S=7:CLS:GOTO 190
  228. 2170  IF X$="G" AND (P8>0 OR P9>0) THEN S=S1:GOTO 380
  229. 2180  IF X$="C" THEN 90
  230. 2190  GOTO 2130
  231. 2200  PRINT"The following are still left in your original option selection:"
  232. 2210  IF P9>0 THEN PRINT TAB(20)P9;S2$" selections
  233. 2220  IF P8>0 THEN PRINT TAB(20)P8;S1$" selections
  234. 2230  PRINT STRING$(80,"-"):RETURN
  235. 2240  PRINT"You still have the following remaining for retesting:
  236. 2250  IF P3>0 THEN PRINT TAB(20)P3;S2$" selections
  237. 2260  IF P4>0 THEN PRINT TAB(20)P4;S1$" selections
  238. 2270  PRINT STRING$(80,"-"):RETURN
  239. 2280  P=0:IF A(1)=A(2) OR A(1)=A(3) OR A(1)=A(4) OR A(1)=A(5) OR A(1)=A(6) OR A(2)=A(3) OR A(2)=A(4) OR A(2)=A(5) OR A(2)=A(6) OR A(3)=A(4) OR A(3)=A(5) OR A(3)=A(6) OR A(4)=A(5) OR A(4)=A(6) OR A(5)=A(6) THEN P=1
  240. 2290  RETURN
  241. 2300  IF P=0 THEN RETURN ELSE CLS:LOCATE 1,13:COLOR 0,7:PRINT" THE FOLLOWING WERE MISSED DURING REGULAR OPTION TESTING ":COLOR 7,0
  242. 2310  IF P1<>100 THEN 2320 ELSE LOCATE 15,16:COLOR 0,7:PRINT" Congratulations!! You received a perfect score. ";:GOSUB 2850:RETURN
  243. 2320  Q=0:Q9$=U2$:IF S1=5 THEN Q9$=U7$
  244. 2330  IF PR$<>"Y" THEN 2360 ELSE IF S1<5 THEN LPRINT TAB(28)"VOCABULARY DRILL RESULTS":LPRINT
  245. 2340  IF S1=5 THEN LPRINT TAB(24)"PHRASE TRANSLATION DRILL RESULTS":LPRINT
  246. 2350  LPRINT"The following were missed during regular option testing:":LPRINT
  247. 2360  FOR I=1 TO P:IF Z1(I)>1 THEN PRINT USING Q9$;Z1$(I);MID$(Z2$(I),2);:Q=Q+1:IF S1=5 THEN Q=Q+1
  248. 2370  IF PR$="Y" AND Z1(I)>1 THEN ZZ$=Z1$(I):GOSUB 2920:LPRINT USING Q9$;ZZ$;:ZZ$=MID$(Z2$(I),2):GOSUB 2920:LPRINT USING Q9$;ZZ$;
  249. 2380  IF Z2(I)>1 THEN PRINT USING Q9$;MID$(Z2$(I),2);Z1$(I);:Q=Q+1:IF S1=5 THEN Q=Q+1
  250. 2390  IF PR$="Y" AND Z2(I)>1 THEN ZZ$=MID$(Z2$(I),2):GOSUB 2920:LPRINT USING Q9$;ZZ$;:ZZ$=Z1$(I):LPRINT USING Q9$;ZZ$;
  251. 2400  IF Q=44 THEN GOSUB 2850:CLS:Q=0:LOCATE 1,13:COLOR 0,7:PRINT" THE FOLLOWING WERE MISSED DURING REGULAR OPTION TESTING ":COLOR 7,0
  252. 2410  NEXT:LOCATE 24,1:PRINT"Amount quizzed ="T1"  Amount correct ="T2"  Final percentage correct ="STR$(P1)"%";:IF INT(Q/2)<>Q/2 AND PR$="Y" THEN LPRINT
  253. 2420  IF PR$="Y" THEN LPRINT:LPRINT"Amount quizzed ="T1"  Amount correct ="T2"  Final percentage correct ="STR$(P1)"%"
  254. 2430  GOSUB 2850:CLS:IF (P5=0 AND P6=0) OR (P3=P5 AND P4=P6) THEN RETURN
  255. 2440  LOCATE 1,19:COLOR 0,7:PRINT" THE FOLLOWING WERE MISSED DURING RETESTING ":COLOR 7,0:Q=0
  256. 2450  IF PR$="Y" THEN LPRINT:LPRINT:LPRINT"The following were missed during restesting:":LPRINT
  257. 2460  FOR I=1 TO P:IF Z1(I)=3 THEN PRINT USING Q9$;Z1$(I);MID$(Z2$(I),2);:Q=Q+1:IF S1=5 THEN Q=Q+1
  258. 2470  IF PR$="Y" AND Z1(I)=3 THEN ZZ$=Z1$(I):GOSUB 2920:LPRINT USING Q9$;ZZ$;:ZZ$=MID$(Z2$(I),2):GOSUB 2920:LPRINT USING Q9$;ZZ$;
  259. 2480  IF Z2(I)=3 THEN PRINT USING Q9$;MID$(Z2$(I),2);Z1$(I);:Q=Q+1:IF S1=5 THEN Q=Q+1
  260. 2490  IF PR$="Y" AND Z2(I)=3 THEN ZZ$=MID$(Z2$(I),2):GOSUB 2920:LPRINT USING Q9$;ZZ$;:ZZ$=Z1$(I):GOSUB 2920:LPRINT USING Q9$;ZZ$;
  261. 2500  IF Q=44 THEN GOSUB 2850:CLS:Q=0:LOCATE 1,19:COLOR 0,7:PRINT" THE FOLLOWING WERE MISSED DURING RETESTING ":COLOR 7,0
  262. 2510  NEXT:IF PR$="Y" THEN LPRINT
  263. 2520  IF Q=0 THEN LOCATE 15,2:COLOR 0,7:PRINT" Congratulations!! You correctly answered all selections when being retested. ":COLOR 7,0
  264. 2530  GOSUB 2850:RETURN
  265. 2540  FOR I=1 TO 6:A(I)=INT(RND(1)*17)+1:NEXT:GOSUB 2280:IF P=1 THEN 2540 ELSE GOSUB 1610
  266. 2550  FOR I=1 TO 4:OPEN "I",1,"VERB"+MID$(STR$(A(I)),2)+".DAT"
  267. 2560  FOR K=1 TO 4:INPUT #1,X$:P=P+1:Z1$(P)=X$:X=INT(RND(1)*5)+1:Z1(INT(P/7)+1)=X
  268. 2570  FOR B=1 TO 6:FOR Z=1 TO 5:INPUT #1,X$:GOSUB 2890
  269. 2580  IF Z=X THEN P=P+1:Z1$(P)=X$:LOCATE 14,39:PRINT P
  270. 2590  NEXT Z:NEXT B:NEXT K:CLOSE:NEXT I:RETURN
  271. 2600  M=INT(RND(1)*P9)+1:IF Z1(M)=0 THEN 2600 ELSE P=((M-1)*7)+1:X=INT(RND(1)*6)+1:X1=X:X=P+X
  272. 2610  LOCATE 2,3:PRINT"*":FOR DE=1 TO 150:NEXT:LOCATE 2,3:PRINT" "
  273. 2620  BR$=INKEY$:IF BR$="" THEN 2630 ELSE IF BR$="x" OR BR$="X" THEN 90
  274. 2630  FOR N=1 TO 4:Z=INT(RND(1)*6)+1:A$(N)=Z1$(P+Z):NEXT
  275. 2640  IF A$(1)=A$(2) OR A$(1)=A$(3) OR A$(1)=A$(4) OR A$(2)=A$(3) OR A$(2)=A$(4) OR A$(3)=A$(4) THEN 2600
  276. 2650  FLAG=0:FOR K=1 TO 4
  277. 2660  IF Z1$(X)=A$(K) THEN FLAG=1:KK=K:K=4
  278. 2670  NEXT:IF FLAG=0 THEN 2610
  279. 2680  K=KK:LOCATE 5,15:PRINT USING U2$;Z1$(P)
  280. 2690  RESTORE 2900:FOR N=1 TO 5:READ Z$
  281. 2700  IF N=Z1(M) THEN LOCATE 5,40:PRINT USING U2$;Z$:BR$=Z$
  282. 2710  NEXT
  283. 2720  FOR N=1 TO 6:READ Z$
  284. 2730  IF N=X1 THEN LOCATE 5,60:PRINT USING U2$;Z$:X$=Z$
  285. 2740  NEXT:GOTO 780
  286. 2750  IF S=6 THEN LOCATE 24,9:PRINT"You have been quizzed on all available verb conjugation forms.";:LOCATE 25,8:PRINT"Press 'M' to load more selections or any other key for the menu.";
  287. 2760  IF S<>6 THEN LOCATE 24,3:PRINT"You have been quizzed with all available combinations. Hit any key for menu.";
  288. 2770  Z$=INKEY$:IF Z$="" THEN 2770
  289. 2780  IF S=6 AND (Z$="m" OR Z$="M") THEN CLS:P=0:GOTO 230 ELSE 90
  290. 2790  PRINT STRING$(23,175);" ";:COLOR 0,7:PRINT" VERB CONJUGATION DRILL RESULTS ";:COLOR 7,0:PRINT" ";STRING$(23,174):LOCATE 4,18:PRINT"The following conjugation forms were missed:"
  291. 2800  RESTORE 2910:FOR I=1 TO 5:READ Z$:NEXT:FOR I=0 TO 5:READ Z$:LOCATE 7,13*I+1:COLOR 0,7:PRINT Z$:COLOR 7,0:NEXT
  292. 2810  FOR K=0 TO 5:RESTORE 2910:FOR I=1 TO 5:READ Z$:LOCATE 8+I,13*K+2:PRINT Z$:LOCATE 8+I,13*K+10:PRINT STR$(E(I,K+1));:IF E(I,K+1)>3 THEN COLOR 23,0:PRINT"*":COLOR 7,0
  293. 2820  NEXT I,K:LOCATE 20,1:PRINT"Total quizzed =";T1;"   Total correct =";T2;"   Correct answer percentage =";STR$(P1);"%"
  294. 2830  LOCATE 25,23:COLOR 0,7:PRINT" Hit any key to return to the menu ";:COLOR 7,0:GOSUB 3110
  295. 2840  IF INKEY$="" THEN 2840 ELSE 90
  296. 2850  LOCATE 25,28:COLOR 0,7:PRINT" Hit any key to continue ";:COLOR 7,0:GOSUB 3110
  297. 2860  IF INKEY$="" THEN 2860 ELSE RETURN
  298. 2870  COLOR 0,7:LOCATE 24,23:PRINT" Hit any key to return to the menu ";:COLOR 7,0:GOSUB 3110
  299. 2880  IF INKEY$="" THEN 2880 ELSE 90
  300. 2890  BR$=INKEY$:IF BR$="" THEN RETURN ELSE IF BR$="x" OR BR$="X" THEN CLOSE:GOTO 90 ELSE RETURN
  301. 2900  DATA YO,TU,USTED,NOSOTROS,USTEDES,PRESENT,PRETERIT,IMPERFECT,FUTURE,CONDITIONAL,PRESENT SUB.
  302. 2910  DATA Yo,Tu,Usted,Nosotros,Ustedes,Present,Preterit,Imperfect,Future,Conditional,Present Sub.
  303. 2920  FOR II=1 TO LEN(ZZ$):IF MID$(ZZ$,II,1)=CHR$(160) THEN MID$(ZZ$,II,1)="a"
  304. 2930  IF MID$(ZZ$,II,1)=CHR$(130) THEN MID$(ZZ$,II,1)="e"
  305. 2940  IF MID$(ZZ$,II,1)=CHR$(161) THEN MID$(ZZ$,II,1)="i"
  306. 2950  IF MID$(ZZ$,II,1)=CHR$(162) THEN MID$(ZZ$,II,1)="o"
  307. 2960  IF MID$(ZZ$,II,1)=CHR$(163) THEN MID$(ZZ$,II,1)="u"
  308. 2962  IF MID$(ZZ$,II,1)=CHR$(164) THEN MID$(ZZ$,II,1)="n"
  309. 2970  NEXT:RETURN
  310. 2980  IF D=1 THEN 3000 ELSE FOR XX=1 TO 10:KEY(XX) ON:NEXT
  311. 2990  ON KEY(1) GOSUB 3060:ON KEY(2) GOSUB 3070:ON KEY(3) GOSUB 3080:ON KEY(4) GOSUB 3090:ON KEY(5) GOSUB 3092:ON KEY(6) GOSUB 3094:FOR II=7 TO 10:ON KEY(II) GOSUB 3100:NEXT
  312. 3000  LOCATE 19,10:YY=19:XX=40:PRINT"Enter your answer (X=Escape): _":ANSWER$=""
  313. 3010  A$=INKEY$:IF A$="" THEN 3010
  314. 3020  IF ASC(A$)=13 THEN FOR II=1 TO 10:ON KEY(II) GOSUB 3100:KEY(II) OFF:NEXT:LOCATE 25,1:PRINT SPC(79);:RETURN
  315. 3030  IF ASC(A$)=8 THEN IF LEN(ANSWER$)=0 THEN 3010 ELSE LOCATE YY,XX:PRINT" ":XX=XX-1:LOCATE YY,XX:PRINT"_":ANSWER$=LEFT$(ANSWER$,LEN(ANSWER$)-1):GOTO 3010
  316. 3040  LOCATE YY,XX:PRINT A$;:YY=CSRLIN:XX=POS(0):PRINT"_";:ANSWER$=ANSWER$+A$
  317. 3050  GOTO 3010
  318. 3060  LOCATE YY,XX:PRINT CHR$(160);:YY=CSRLIN:XX=POS(0):PRINT"_";:ANSWER$=ANSWER$+CHR$(160):RETURN
  319. 3070  LOCATE YY,XX:PRINT CHR$(130);:YY=CSRLIN:XX=POS(0):PRINT"_";:ANSWER$=ANSWER$+CHR$(130):RETURN
  320. 3080  LOCATE YY,XX:PRINT CHR$(161);:YY=CSRLIN:XX=POS(0):PRINT"_";:ANSWER$=ANSWER$+CHR$(161):RETURN
  321. 3090  LOCATE YY,XX:PRINT CHR$(162);:YY=CSRLIN:XX=POS(0):PRINT"_";:ANSWER$=ANSWER$+CHR$(162):RETURN
  322. 3092  LOCATE YY,XX:PRINT CHR$(163);:YY=CSRLIN:XX=POS(0):PRINT"_";:ANSWER$=ANSWER$+CHR$(163):RETURN
  323. 3094  LOCATE YY,XX:PRINT CHR$(164);:YY=CSRLIN:XX=POS(0):PRINT"_";:ANSWER$=ANSWER$+CHR$(164):RETURN
  324. 3100  LOCATE YY,XX:PRINT"";:YY=CSRLIN:XX=POS(0):PRINT"_";:RETURN
  325. 3110  XXX$=INKEY$:IF XXX$<>"" THEN 3110 ELSE RETURN
  326. 3120  RESUME 3130
  327. 3130  LOCATE 23,26:COLOR 23:PRINT L$:COLOR 7:FOR DE=1 TO 5999:NEXT:ON ERROR GOTO 0:GOTO 130
  328. 3140  LOCATE 18,1:IF (S<>6 AND D=1 AND S<>7) OR S=6 THEN XX=P8 ELSE IF S<>6 AND D=2 AND S<>7 THEN XX=P9 ELSE IF S=7 AND D=1 THEN XX=P4 ELSE IF S=7 AND D=2 THEN XX=P3
  329. 3150  IF XX=1 THEN PRINT" 1 selection remains" ELSE PRINT XX"selections remain "
  330. 3160  RETURN
  331. 3170  RESUME 3180
  332. 3180  LOCATE 25,26:COLOR 23:PRINT L$;:COLOR 7:FOR DE=1 TO 5999:NEXT:LOCATE 25,26:PRINT SPC(50);:ON ERROR GOTO 0:PR$="":GOTO 2130
  333.